<?php

require_once dirname(__FILE__).'/../lib/listraGeneratorConfiguration.class.php';
require_once dirname(__FILE__).'/../lib/listraGeneratorHelper.class.php';

/**
 * listra actions.
 *
 * @package    laboratorio
 * @subpackage listra
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class listraActions extends autoListraActions
{
  public function executeListImprimir(sfWebRequest $request){
    $filtro = new DetalleTrabajoFormFilter();
    $consulta = $filtro->buildQuery($this->getFilters());    
    $consulta->leftJoin('r.Trabajo t');
    $consulta->leftJoin('r.Producto p');
    $consulta->leftJoin('r.Estado e');
    $consulta->leftJoin('t.Cliente');    
    $consulta->orderBy('prioridad desc');
    $consulta->addOrderBy('fecha_ingreso desc');
    $consulta->limit(15);
    $lista = $consulta->execute();
    
    $dompdf = new DOMPDF();
    $dompdf->load_html($this->getPartial("imprimir", array("trabajos" => $lista)));
    $dompdf->set_paper('A4','portrait');
    $dompdf->render();
    $dompdf->stream("lista.pdf");    
    return sfView::NONE;
  }
  
  protected function processForm(sfWebRequest $request, sfForm $form){
    $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
    if ($form->isValid()){
      $notice = $form->getObject()->isNew() ? 'The item was created successfully.' : 'The item was updated successfully.';
      $detalle_trabajo = $form->save();

      $trabajo_estado = new TrabajoEstado();
      $trabajo_estado->setDetalleTrabajoId($detalle_trabajo->getId());
      $trabajo_estado->setEstadoId($detalle_trabajo->getEstadoId());
      $trabajo_estado->setFecha(date("Y-m-d"));
      $trabajo_estado->save();

      $this->getUser()->setFlash('notice', $notice);
      $this->redirect('@detalle_trabajo_listra');

    }else{
      $this->getUser()->setFlash('error', 'The item has not been saved due to some errors.', false);
    }
  }  
}
